Skip to content

feat: add Markdown filter for hand-authored question sets - #23

Open
m-messer wants to merge 1 commit into
validatorfrom
markdown-filter
Open

feat: add Markdown filter for hand-authored question sets#23
m-messer wants to merge 1 commit into
validatorfrom
markdown-filter

Conversation

@m-messer

@m-messer m-messer commented Sep 1, 2026

Copy link
Copy Markdown
Member

A new Markdown filter parses a plain #/## markdown document into the Set/Question/Part model:

  • # → new question (heading is the title)
  • ## → new part
  • ## Solution → worked solution for the current part (or the whole question if it has no parts)
  • -a answers.md# advances to the next question, body blocks become worked solutions

This is the intermediate contract the wizard emits and hands back for review. runner() now runs check_markdown() over any markdown input and echoes a non-fatal warning per math-delimiter problem.

docs/source/filters.py learns to document a filter whose example is example.md (shown inline) instead of example.tex (rendered to a PDF).

Structure adapted from the Markdown2Lambda branch; the elaborate \st/\fa/\ws/*** syntax is dropped since the model only has question text, part text and one worked solution per part.


Stack: validator ← markdown-filter ← cli-group ← …
Base: validator#22.

🤖 Generated with Claude Code

A new "Markdown" filter parses a plain #/## markdown document into the
Set/Question/Part model:

- `#`            -> new question (heading is the title)
- `##`           -> new part
- `## Solution`  -> worked solution for the current part (or the whole
                    question if it has no parts)
- `-a answers.md` -> `#` advances to the next question, body blocks become
                     worked solutions

This is the intermediate contract the wizard will emit and hand back for
review. runner() now runs in2lambda.validation.check_markdown over any
markdown input and echoes a warning per math-delimiter problem (non-fatal).

docs/source/filters.py learns to document a filter whose example is
example.md (shown inline) instead of example.tex (rendered to a PDF), so the
new filter is picked up by the existing autosummary generation.

Structure adapted from the Markdown2Lambda branch; the elaborate
\st/\fa/\ws/*** syntax there is dropped since the Set/Question/Part model
only has question text, part text and one worked solution per part.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017VXb8aZqgFBjoeuuddjW6r
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant